//
//  UIImage+Extension.swift
//  WYWeibo
//
//  Created by wangyi on 16/7/20.
//  Copyright © 2016年 wangyi. All rights reserved.
//

import UIKit

// MARK: - 延展的 开头  一 : 返回值 整个延展就是为了得到一个返回值  返回值类型 和延展的属性相同
// MARK: - 提供方法  外界调用
extension UIImage {

    class func getScreenShot() -> UIImage {
        //获取主 window  由于 UIView 添加在 window 上  获取它要先取的父控件
        let window = UIApplication.sharedApplication().keyWindow!
        
        //开启图形上下文
        //截取的不是高清图片
        UIGraphicsBeginImageContext(window.size)
        //scale 0 表示屏幕的真是分辨率, 其他数字表示  数字*点的大小
//        UIGraphicsBeginImageContextWithOptions(window.size,                false, 0)
        
        //把 window 内容宣润到图片上下文中 
        window.drawViewHierarchyInRect(window.bounds, afterScreenUpdates: false)
        //从上下文章获取图片
        let image = UIGraphicsGetImageFromCurrentImageContext()
        //关闭图形上下文
        UIGraphicsEndImageContext()
        
        return image
        
    }
    
    /*!
    根据指定压缩后的宽度 压缩图片
    
    - parameter scaleWidth: 压缩的宽度
    - parameter image:      压缩的图片
    
    - returns: 压缩后的图片
    */
    func scaleImageWithScaleWidth(scaleWidth: CGFloat, image: UIImage) -> UIImage {
        
        //根据压缩或的宽度计算要素后的高度
        let scaleHeight = scaleWidth / image.size.width * image.size.height
        //压缩后的大小
        let size = CGSize(width: scaleWidth, height: scaleHeight)
        //开启上下文
        UIGraphicsBeginImageContext(size)
        //把图片渲染到指定范围内
        image.drawInRect(CGRect(origin: CGPointZero, size: size))
        //获取上下文中压缩后的图片
        let scaleImage = UIGraphicsGetImageFromCurrentImageContext()
        //关闭图像上下文
        UIGraphicsEndImageContext()
        //返回压缩后的图片
        return scaleImage
    }

}